package com.hyt.it.ogt.kq.service.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hyt.it.ogt.kq.service.gov.model.entity.ExamArea;
import com.hyt.model.PageParam;

import java.util.List;

/**
 * <p>
 * 考区信息表 Mapper 接口
 * </p>
 *
 * @author huangyh
 * @since 2021-03-08
 */
public interface ExamAreaMapper extends BaseMapper<ExamArea> {

    /**
     * 查询考区
     * @param taskId
     * @return
     */
    List<String> selectAreaAndStudentAreaCode(String taskId);

    /**
     * 查询考区
     * @param pageParam
     * @param taskId
     * @param searchTxt
     * @return
     */
    Page<ExamArea> selectExamArea(PageParam<ExamArea> pageParam, String taskId, String searchTxt);

    /**
     * 一个考区一条数据
     * @param pageParam
     * @param taskId
     * @param searchTxt
     * @return
     */
    Page<ExamArea> selectExamAreaGroupByExamAreaCode(PageParam<ExamArea> pageParam, String taskId, String searchTxt);

    /**
     * 查询考点区域
     * @param taskId
     * @param examAreaCode
     * @param type
     * @return
     */
    List<ExamArea> selectArea(String taskId,String examAreaCode,String type);

    /**
     * 查询区域信息名称
     * @param taskId
     * @param areaCode
     * @return
     */
    String selectAreaOneName(String taskId,String areaCode);

    /**
     * 查询考生区域
     * @param taskId
     * @param examAreaCode
     * @param type
     * @return
     */
    List<ExamArea> selectStudentArea(String taskId,String examAreaCode,String type);
    
    /**
     * 查询任务区域列表
     * @param taskId
     * @param examAreaCode
     * @param type
     * @return
     */
    List<ExamArea> selectAreasByCodes(String taskId,List<String> examAreaCodes);

    /**
     * 查询考生区域名称
     * @param taskId
     * @param provinceCode
     * @return
     */
    String selectStudentAreaOneName(String taskId,String provinceCode);

    /**
     * 复制考区
     * @param oldTaskId
     * @param newTaskId
     * @param userName
     */
    void copyExamArea(String oldTaskId, String newTaskId, String userName);

}
